package com.wondertek.common.util.security;

import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.security.Principal;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Map;
import java.util.Set;

/**
 * @author xqs
 */
@Data
@AllArgsConstructor
@NoArgsConstructor
@JsonIgnoreProperties({"name"})
public class LoginUser implements Principal {

    private String token;

    /**
     * 当前登录用户id
     */
    private String userId;

    /**
     * 当前登录用户名
     */
    private String username;

    private String mobile;


    /**
     * 邮箱
     */
    private String email;

    /**
     * 用户昵称
     */
    private String nickname;



    /**
     * 启用 ENABLE 关闭 DISABLE
     */
    private String status;


    /**
     * 用户类型1市物业2区县3街道办4业委会
     */
    private String type;


    /**
     * 区域
     */
    private String regionCode;


    /**
     * 街道
     */
    private String streeId;



    /**
     * 小区
     */
    private String communityId;

    /**
     * 菜单权限标识
     */
    private Set<String> authoritiesMenu = new HashSet<>();


    /**
     * 按钮权限标识
     */
    private Set<String> authoritiesButton = new HashSet<>();


    /**
     * 角色权限标识
     */
    private Set<String> authoritiesRoles = new HashSet<>();

    /**
     * 用户的其他信息
     */
    private Map<String, Object> userInfo = new HashMap<>();

    @Override
    public String getName() {
        return username;
    }
}
